package com.cbgolf.oa.entity;

import com.cbgolf.oa.entity.ChartData.CaddieHistory;
import java.io.Serializable;
import java.util.List;

/**
 * Created by lq on 2017/8/30.
 */

public class StatisticsBean extends BaseBean implements Serializable {

  //book------------------------------------------------------------------------------------------------------
  //tongji
  public List<ChartData> reserveTimeDtos;

  //from
  public List<ChartData> reserveLineDtos;
  public reserveTotalDto reserveTotalDto;


  public reserveTotalDto getStatisticsInfo() {
    return new reserveTotalDto();
  }

  public class reserveTotalDto implements Serializable {

    public int come;
    public int maxLastLine;
    public int maxLastReserveCount;
    public int maxLine;
    public int maxReserveCount;
    public int nocome;
    public int total;
    public String compareComePercent;
    public String compareNocomnePercent;
    public String compareTatalPercent;
  }

  //caddie---------------------------------------------------------------------------------------------------------

  public totalPlayTimes totalPlayTimes;
  public averagePlayTimes averagePlayTimes;
  public averageTime averageTime;
  public List<PersonNum> playTimesCurves;
  public List<PersonNumLast> lastPlayTimesCurves;
  public List<ChartData> levelHistograms;
  public List<ChartData> lastLevelHistograms;

  public class totalPlayTimes implements Serializable {

    public String totalPlayTimes;
    public String lastPercent;
  }

  public class averagePlayTimes implements Serializable {

    public String averagePlayTimes;
    public String lastPercent;
  }

  public class averageTime implements Serializable {

    public String averageTime;
    public String lastPercent;
  }

  public class PersonNum implements Serializable {

    public String playTimes;
    public String timerShaft;
  }

  public class PersonNumLast implements Serializable {

    public String playTimes;
    public String timerShaft;
  }

  public PersonNumLast getPersonNumLast() {
    return new PersonNumLast();
  }

  public PersonNum getPersonNum() {
    return new PersonNum();
  }

  public totalPlayTimes getTotalPlayTimes() {
    return new totalPlayTimes();
  }

  public averageTime getaverageTime() {
    return new averageTime();
  }

  public averagePlayTimes getaveragePlayTimes() {
    return new averagePlayTimes();
  }

  //business----------------------------------------------------------------------------------------------------------

  public List<ChartData> outletPayWayDtos;
  public List<outlet> outletTimePayDtos;
  public outletTotalDto outletTotalDto;


  public class outlet implements Serializable {

    public int x;
    public int y;
    public int lastY;
  }

//  public payWay getpayWay() {
//    return new payWay();
//  }

  public outlet getOutlet() {
    return new outlet();
  }

  public outletTotalDto getOutletTotalDto() {
    return new outletTotalDto();
  }

  public class outletTotalDto implements Serializable {

    public String compareIncomePercent;
    public String compareNonrevenuePercent;
    public String compareTatalPercent;
    public String income;
    public int maxLastPayWay;
    public int maxLastTimePay;
    public int maxPayWay;
    public int maxTimePay;
    public String nonrevenue;
    public String total;
  }

  //bill-------------------------------------------------------------------------------------------------------------
  public List<Line> lastCurveList;
  public List<Line> curveList;
  public List<Bar> lastHistogramList;
  public List<Bar> histogramList;

  public class Line implements Serializable {

    public String fee;
    public String timerShaft;
  }

  public class Bar implements Serializable {

    public String signingFee;
    public String signingId;
    public String signingName;

  }
  public Bar getBar() {
    return new Bar();
  }

  public listDto listDto;

  public class listDto implements Serializable {

    public first first;

    public class first implements Serializable {

      public String lastTotalSigningFee;
      public String totalSigningFee;
    }

    public second second;

    public class second implements Serializable {

      public String lastTotalSigningFee;
      public String totalSigningFee;
    }

    public third third;

    public class third implements Serializable {

      public String lastTotalSigningFee;
      public String totalSigningFee;
    }

  }


  public List<ChartData> customerComeDtoList;

  public List<ChartData> customerIdentifyDtoList;

  public PlayerData customerDto;

  public class PlayerData implements Serializable {

    public String compareNoPlayCountPercent;
    public String comparePlayPercent;
    public String compareTotalPercent;
    public String noPlayCount;
    public String playCount;
    public String totalCount;
  }

  public PlayerData getPlayerData() {
    return new PlayerData();
  }

  public ChartData getChartData() {
    return new ChartData();
  }


  public String barQueryId;
  public String isCome;

  public String barQueryName;
  public String mDateString;
  public long startTime;
  public long endTime;
  public List<ChartData> listBarData;
  public List<ListBean> listNameId;
  public List<CaddieHistory> listCaddie;

  public static class Builder implements Serializable {

    StatisticsBean bean;

    public Builder() {
      bean = new StatisticsBean();
    }

    public Builder setBarQueryId(String id) {
      bean.barQueryId = id;
      return this;
    }

    public Builder setBarQueryName(String name) {
      bean.barQueryName = name;
      return this;
    }

    public Builder setStartTime(long time) {
      bean.startTime = time;
      return this;
    }

    public Builder setEndTime(long time) {
      bean.endTime = time;
      return this;
    }

    public Builder setDateString(String dateString) {
      bean.mDateString = dateString;
      return this;
    }

    public Builder setBarData(List<ChartData> list) {
      bean.listBarData = list;
      return this;
    }

    public Builder setBussinessCode(String code) {
      bean.code = code;
      return this;
    }

    public Builder setPayCode(String code) {
      bean.payCode = code;
      return this;
    }

    public Builder setPayInCome(String inCome) {
      bean.payIncome = inCome;
      return this;
    }

    public Builder setReserveType(String reserveType) {
      bean.reserveType = reserveType;
      return this;
    }

    public Builder setLineType(String lineType) {
      bean.lineType = lineType;
      return this;
    }

    public Builder setDateUnit(String unit) {
      bean.dateUnit = unit;
      return this;
    }

    public Builder setSgningId(String id) {
      bean.signingId = id;
      return this;
    }

    public Builder setListNameId(List<ListBean> list) {
      bean.listNameId = list;
      return this;
    }

    public Builder setListCaddie(List<CaddieHistory> list) {
      bean.listCaddie = list;
      return this;
    }


    public Builder setIsNoData(boolean isNoData) {
      bean.isNoData = isNoData;
      return this;
    }

    public Builder setError(String error, int code) {
      bean.errorMsg = error;
      bean.errorCode = code;
      return this;
    }

    public StatisticsBean build() {
      return bean;
    }
  }

  public boolean isNoData;
  public String errorMsg;
  public int errorCode;

  public String payIncome;
  public String payCode;
  public String code;
  public String lineType;
  public String reserveType;

  public String dateUnit;
  public String signingId;


  public String userId;
  public String phone;
  public String identityType;

  public String userName;

  public List<Info> customerInfo;

  public class Info implements Serializable {

    public String customerCardNumber;
    public String customerId;
    public String customerCardId;
    public String name;
    public String courseCar;
    public String hole;
  }

  public Info getInfo() {
    return new Info();
  }


  public String carTypeName;
  public String levelName;
  public List<StatisticsInfo> courseCarUseInfo;
  public List<StatisticsInfo> caddieUsedInfo;

//  public StatisticsInfo getCarInfo() {
//    return new StatisticsInfo();
//  }

//  public String fairwayName;
//  public List<Player> listPerson;
//
//  public class Player implements Serializable {
//
//    public String name;
//    public boolean isCaddie;
//    public boolean isWorker;
//    public boolean isPlayer;
//    public String headPic;
//    public String userId;
//    public String caddieLevel;
//    public String courseId;
//    public String phone;
//    public String customerCount;
//    public List<String> customers;
//  }
//
//  public Player getPlayer() {
//    return new Player();
//  }
}
